<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div id="root">
    <Child :num="num" @incr="pincr"></Child>
  </div>


  <script src="./js/vue.js"></script>
  <script>

    // 子组件
    const Child = {
      template: `
        <div>
          计数器：{{ num }}
          <hr/>
          <button @click="incr">自增数据</button>
        </div>
      `,
      props: ['num'],
      methods: {
        incr() {
          // 通过自定义事件来完成通知父组件更改data中的数据
          // 参数1 自定义事件名称
          // 参数2 数据
          this.$emit('incr', 2)
        }
      }
    }

    // 父组件
    new Vue({
      el: '#root',
      data: {
        num: 1
      },
      // 局部组件
      components: { Child },
      // 方法
      methods: {
        pincr(arg) {
          this.num += arg
        }
      }
    })
  </script>
</body>

</html>